<!DOCTYPE html>
<html lang="en">

<!-- Head tag -->
<head><meta name="generator" content="Hexo 3.9.0">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!--Description-->
    
        <meta name="description" content="Git 与 GitHub
分布式版本控制系统
2008 年发布网站版GitHub
版本控制 ，git可以解决找回历史代码的问题
集中式
工作电脑的代码完整保存在中央服务器，服务器一旦挂掉，代码无法找回


分布式
工作电脑代码页完整保存在中央服务器，但分布在不同的机器上，服务器一旦挂掉，可以继续正常">
    

    <!--Author-->
    
        <meta name="author" content="ck">
    

    <!--Open Graph Title-->
    
        <meta property="og:title" content="Git---常见用法">
    

    <!--Open Graph Description-->
    

    <!--Open Graph Site Name-->
    <meta property="og:site_name" content="CK">

    <!--Type page-->
    
        <meta property="og:type" content="article">
    

    <!--Page Cover-->
    

    <meta name="twitter:card" content="summary">
    

    <!-- Title -->
    
    <title>Git---常见用法 - CK</title>

    <!-- Bootstrap Core CSS -->
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" integrity="sha384-y3tfxAZXuh4HwSYylfB+J125MxIs6mR5FOHamPBG064zB+AFeWH94NdvaCBm8qnd" crossorigin="anonymous">

    <!-- Custom Fonts -->
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

    <!-- Gallery -->
    <link href="//cdnjs.cloudflare.com/ajax/libs/featherlight/1.3.5/featherlight.min.css" type="text/css" rel="stylesheet">

    <!-- Custom CSS -->
    <link rel="stylesheet" href="/blog/css/style.css">

    <!-- Google Analytics -->
    


</head>


<body>

<div class="bg-gradient"></div>
<div class="bg-pattern"></div>

<!-- Menu -->
<!--Menu Links and Overlay-->
<div class="menu-bg">
    <div class="menu-container">
        <ul>
            
            <li class="menu-item">
                <a href="/blog/">
                    Home
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/archives">
                    Archives
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/about.html">
                    About
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/tags">
                    Tags
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/categories">
                    Categories
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/contact.html">
                    Contact
                </a>
            </li>
            
        </ul>
    </div>
</div>

<!--Hamburger Icon-->
<nav>
    <a href="#menu"></a>
</nav>

<div class="container">

    <!-- Main Content -->
    <div class="row">
    <div class="col-sm-12">

        <!--Title and Logo-->
        <header>
    <div class="logo">
        <a href="/blog/"><i class="logo-icon fa fa-cube" aria-hidden="true"></i></a>
        
    </div>
</header>

        <section class="main">
            
<div class="post">

    <div class="post-header">
        <h1 class="title">
            <a href="/blog/2019/08/12/Git-常见用法/">
                Git---常见用法
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2019-08-12</span>
            
            
            
        </div>
    </div>

    <div class="content">

        <!-- Gallery -->
        

        <!-- Post Content -->
        <h1 id="Git-与-GitHub"><a href="#Git-与-GitHub" class="headerlink" title="Git 与 GitHub"></a>Git 与 GitHub</h1><ul>
<li>分布式版本控制系统</li>
<li>2008 年发布网站版GitHub</li>
<li>版本控制 ，git可以解决找回历史代码的问题</li>
<li>集中式<ul>
<li>工作电脑的代码完整保存在中央服务器，服务器一旦挂掉，代码无法找回</li>
</ul>
</li>
<li>分布式<ul>
<li>工作电脑代码页完整保存在中央服务器，但分布在不同的机器上，服务器一旦挂掉，可以继续正常工作</li>
</ul>
</li>
</ul>
<h2 id="安装命令："><a href="#安装命令：" class="headerlink" title="安装命令："></a>安装命令：</h2><ul>
<li><code>sudo apt-get install git</code><ul>
<li>验证安装成功<ul>
<li>输入命令 git </li>
<li>没报错提示各种命令  就OK了</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="使用："><a href="#使用：" class="headerlink" title="使用："></a>使用：</h2><h3 id="建立要管理的目录，并初始化"><a href="#建立要管理的目录，并初始化" class="headerlink" title="建立要管理的目录，并初始化"></a>建立要管理的目录，并初始化</h3><ul>
<li><code>mkdir 文件夹名</code>      # git_test 是文件夹名</li>
<li><code>cd 路径</code>    # 进入目录页</li>
<li><code>git init</code></li>
<li>添加文件夹到目录下<ul>
<li><code>git add 文件夹名</code></li>
<li><code>git commit -m &#39;版本名&#39;</code>     # 版本名只是个说明 如果重名 版本标号会做出差异</li>
<li>版本编号来自 log日志 commit 后面的值</li>
</ul>
</li>
</ul>
<h3 id="查看git版本日志信息"><a href="#查看git版本日志信息" class="headerlink" title="查看git版本日志信息"></a>查看<code>git</code>版本日志信息</h3><ul>
<li>详解日志信息<ul>
<li><code>git log</code></li>
</ul>
</li>
<li>简洁日志+分支路线<ul>
<li><code>git log --pretty=oneline --graph</code></li>
</ul>
</li>
<li>简介日志信息<ul>
<li><code>git log --pretty=oneline</code></li>
</ul>
</li>
</ul>
<h3 id="版本回退"><a href="#版本回退" class="headerlink" title="版本回退"></a>版本回退</h3><ul>
<li>回到HEAD 版本<ul>
<li><code>git reset --hard HEAD</code>    # 回退到当前版本</li>
<li><code>git reset --hard HEAD^</code>    # 回退到当前版本前一个版本 每多一个^多回退一个版本</li>
<li>版本过多  <code>git reset --hard HEAD~数值</code></li>
</ul>
</li>
<li>指定版本 回退<ul>
<li><code>git reset --hard 版本编号</code>     </li>
</ul>
</li>
</ul>
<h3 id="工作区和暂存区介绍"><a href="#工作区和暂存区介绍" class="headerlink" title="工作区和暂存区介绍"></a>工作区和暂存区介绍</h3><ul>
<li>get_test 文件夹就是工作区</li>
<li>.git 这个隐藏文件夹就是版本库<ul>
<li>其中重要的是称为stage(或叫index)的暂存区</li>
<li>还有自动创建的一个分支master<ul>
<li>所以.git 就是往master分支上提交修改</li>
</ul>
</li>
<li>以及master的一个指针叫HEAD</li>
</ul>
</li>
<li>Ps: 你可以理解为：需要提交的文件修改通通放到暂存区，然后一次性提交暂存区的所有修改</li>
<li>Ps： git 管理文件的修改，他只会提交暂存区的修改来创建新版本</li>
</ul>
<h3 id="工作区状态"><a href="#工作区状态" class="headerlink" title="工作区状态"></a>工作区状态</h3><ul>
<li><code>git status</code></li>
</ul>
<h3 id="撤销修改"><a href="#撤销修改" class="headerlink" title="撤销修改"></a>撤销修改</h3><ul>
<li>改乱了 工作区<ul>
<li><code>git checkout -- file</code>   # file :文件名加格式</li>
</ul>
</li>
<li>改乱了 工作区，并提交到暂存区，想丢弃修改<ul>
<li>先执行  <code>git reset HEAD file</code>     # file :文件名加格式</li>
<li>再执行 <code>git checkout -- file</code>      # file :文件名加格式</li>
</ul>
</li>
<li>已经提交了版本<ul>
<li>回退一节，返回上一版本</li>
</ul>
</li>
</ul>
<p>Ps：git add之前 添加到工作区 ， 之后 添加到暂存区， git commit -m 之后仓库区</p>
<h3 id="文件对比"><a href="#文件对比" class="headerlink" title="文件对比"></a>文件对比</h3><ul>
<li><code>git diff HEAD -- file</code>   # file :要对比的文件名加格式  HEAD: 用法相同当前版本</li>
</ul>
<h3 id="删除文件"><a href="#删除文件" class="headerlink" title="删除文件"></a>删除文件</h3><ul>
<li><code>rm file</code>        # file :文件名加格式<ul>
<li>相当于对工作区作出了修改，可以通过撤销修改的方式找回<ul>
<li>注意：删除一个文件，如果一个文件已经被提交到版本库，那么你永远不用担心误删，但只能恢复最新版本，会丢失最近一次提交后的修改内容（只有经过git操作的才能找回）</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="Git-分支"><a href="#Git-分支" class="headerlink" title="Git 分支"></a>Git 分支</h2><h3 id="创建分支与合并分支"><a href="#创建分支与合并分支" class="headerlink" title="创建分支与合并分支"></a>创建分支与合并分支</h3><ul>
<li>概念：<ul>
<li>git 把每次提交的版本串成一条时间线，这条时间线就是一个分支，截止到目前只有一条时间线，在 git 里称为 主分支，也就是master(主机)分支，HEAD严格来说不是指向提交，而是指向master，master才是指向提交的，所以 HEAD 指向就是当前分支</li>
<li>创建分支是就是git新建了一个指针叫dev，指向master相同的提交，再把HEAD指向dev，就是表示当前分支在dev上，创建分支很快，因为除了增加dev指针，改动HEAD指向，工作区都没做任何变化，当工作完成后，把dev合并到master上，git直接把master指向dev的当前提交，就完成了合并</li>
</ul>
</li>
</ul>
<h3 id="查看分支"><a href="#查看分支" class="headerlink" title="查看分支"></a>查看分支</h3><ul>
<li><code>git branch</code><ul>
<li>表示当前在哪个分支</li>
</ul>
</li>
</ul>
<h3 id="创建分支dev并切换其分支工作"><a href="#创建分支dev并切换其分支工作" class="headerlink" title="创建分支dev并切换其分支工作"></a>创建分支dev并切换其分支工作</h3><ul>
<li>创建分支<ul>
<li><code>git checkout dev</code>        # dev 表示新建分支名(变量，别称)</li>
</ul>
</li>
<li>创建并切换<ul>
<li><code>git checkout -b dev</code>    # dev 表示新建分支名(变量，别称)<ul>
<li>HEAD 指向了 dev   master 还是指向主分支</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="切换分支"><a href="#切换分支" class="headerlink" title="切换分支"></a>切换分支</h3><ul>
<li><code>git checkout master</code></li>
</ul>
<h3 id="合并分支"><a href="#合并分支" class="headerlink" title="合并分支"></a>合并分支</h3><ul>
<li>快速合并<ul>
<li><code>git merge dev</code>        # dev 表示新建分支名(变量，别称)</li>
</ul>
</li>
</ul>
<h3 id="删除分支"><a href="#删除分支" class="headerlink" title="删除分支"></a>删除分支</h3><ul>
<li><code>git branch -d dev</code>    # dev 表示新建分支名(变量，别称)</li>
</ul>
<h3 id="合并失败，解决冲突"><a href="#合并失败，解决冲突" class="headerlink" title="合并失败，解决冲突"></a>合并失败，解决冲突</h3><ul>
<li><p>冲突原因 : 可能建立分之后，回到master分支做了提交版本，master分支和dev分支都提交了新版本(都做过修改)，合并冲突</p>
<ul>
<li>解决方法，在master分支，打开文件，手动修改融合，并git add 然后Git commit 提交新版本，然后删除不需要的dev分支</li>
</ul>
</li>
<li><h4 id="查看提交的版本详情和分支合并线路"><a href="#查看提交的版本详情和分支合并线路" class="headerlink" title="查看提交的版本详情和分支合并线路"></a>查看提交的版本详情和分支合并线路</h4><ul>
<li><h4 id="git-log-pretty-oneline-graph"><a href="#git-log-pretty-oneline-graph" class="headerlink" title="git log --pretty=oneline --graph"></a><code>git log --pretty=oneline --graph</code></h4></li>
</ul>
</li>
</ul>
<h2 id="分支管理策略"><a href="#分支管理策略" class="headerlink" title="分支管理策略"></a>分支管理策略</h2><ul>
<li>原因：合并未成功并没有冲突，自动提交一次新版本，这种时候删除分支后，会丢失分支信息<ul>
<li>解决方法：不快速合并 并 禁用fast-forward<ul>
<li><code>git merge --no-ff -m &#39;备注&#39; dev</code>     # dev 表示新建分支名(变量，别称)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="GitHub"><a href="#GitHub" class="headerlink" title="GitHub"></a>GitHub</h1><ul>
<li>概念：工作电脑把代码推送到Git中央服务器，也可以从服务器获取代码，</li>
</ul>
<h2 id="本地连接GitHub"><a href="#本地连接GitHub" class="headerlink" title="本地连接GitHub"></a>本地连接GitHub</h2><ul>
<li>把本地SSH公钥添加到GitHub的settings(设置)里的SSH and GPG keys 里<ul>
<li>title 随便起</li>
<li>SSH公钥添加到下方文本框域</li>
</ul>
</li>
<li>SSH公钥获取<ul>
<li>家目录执行 <code>.gitconfig</code><ul>
<li>获取到email的值 这是本机SSH的私钥<ul>
<li>我的是 <code>5127226+chenkai0309@user.noreply.gitee.com</code></li>
<li><a href="mailto:15300217317@163.com" target="_blank" rel="noopener">15300217317@163.com</a></li>
</ul>
</li>
</ul>
</li>
<li>通过私钥获取生成公钥<ul>
<li><code>ssh-keygen -t rsa -C &#39;5127226+chenkai0309@user.noreply.gitee.com&#39;</code></li>
<li>可以看到 生成路径在 <code>C:\Users\Lenovo/.ssh/id_rsa</code>  的 <code>id_rsa.pub</code>文件里<ul>
<li><code>id_rsa.pub</code> 文件里 存储公钥</li>
<li><code>id_rsa</code> 文件里 存储私钥</li>
</ul>
</li>
<li>查看并拷贝公钥<ul>
<li><code>cat id_rsa.pub</code></li>
</ul>
</li>
</ul>
</li>
<li>ok 完成</li>
</ul>
</li>
</ul>
<h2 id="克隆文件"><a href="#克隆文件" class="headerlink" title="克隆文件"></a>克隆文件</h2><ul>
<li>回到首页</li>
<li>点击仓库    </li>
<li>点击下载或克隆 ，</li>
<li>选择 Use SSH  </li>
<li>获取git地址链接</li>
<li>到指定目录</li>
<li><code>git clone 获取的链接</code></li>
<li>即可下载或克隆</li>
</ul>
<h2 id="推送代码"><a href="#推送代码" class="headerlink" title="推送代码"></a>推送代码</h2><ul>
<li><code>git push origin smart</code>     #smart  新建的分支    origin  远程推送</li>
</ul>

    </div>

    

    

    <!-- Comments -->
    

</div>
        </section>

    </div>
</div>


</div>

<!-- Footer -->
<div class="push"></div>

<footer class="footer-content">
    <div class="container">
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 footer-about">
                <h2>About</h2>
                <p>
                    This theme was developed by <a href="https://github.com/klugjo">Jonathan Klughertz</a>. The source code is available on Github. Create Websites. Make Magic.
                </p>
            </div>
            
    <div class="col-xs-6 col-sm-6 col-md-3 col-lg-3 recent-posts">
        <h2>Recent Posts</h2>
        <ul>
            
            <li>
                <a class="footer-post" href="/blog/2019/08/12/如何快速搭建hexo技术博客/">如何快速搭建hexo技术博客</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/08/12/二进制字典数据处理/">二进制字典数据处理</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/08/12/Dos-命令手记/">Dos-命令手记</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/08/12/Mysql-命令手记/">Mysql-命令手记</a>
            </li>
            
        </ul>
    </div>



            
        </div>
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                <ul class="list-inline footer-social-icons">
                    
                    <li class="list-inline-item">
                        <a href="https://github.com/klugjo/hexo-theme-alpha-dust">
                            <span class="footer-icon-container">
                                <i class="fa fa-github"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://twitter.com/?lang=en">
                            <span class="footer-icon-container">
                                <i class="fa fa-twitter"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.facebook.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-facebook"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.instagram.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-instagram"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://dribbble.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-dribbble"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://plus.google.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-google-plus"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.behance.net/">
                            <span class="footer-icon-container">
                                <i class="fa fa-behance"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://500px.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-500px"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="mailto:test@example.com">
                            <span class="footer-icon-container">
                                <i class="fa fa-envelope-o"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="\#">
                            <span class="footer-icon-container">
                                <i class="fa fa-rss"></i>
                            </span>
                        </a>
                    </li>
                    
                </ul>
            </div>
        </div>
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                <div class="footer-copyright">
                    @Untitled. All right reserved | Design & Hexo <a href="http://www.codeblocq.com/">Jonathan Klughertz</a>
                </div>
            </div>
        </div>
    </div>
</footer>

<!-- After footer scripts -->

<!-- jQuery -->
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>

<!-- Tween Max -->
<script src="//cdnjs.cloudflare.com/ajax/libs/gsap/1.18.5/TweenMax.min.js"></script>

<!-- Gallery -->
<script src="//cdnjs.cloudflare.com/ajax/libs/featherlight/1.3.5/featherlight.min.js" type="text/javascript" charset="utf-8"></script>

<!-- Custom JavaScript -->
<script src="/blog/js/main.js"></script>

<!-- Disqus Comments -->



</body>

</html>